

# 1 定义师父类
class Master(object):
    # 1.1 init
    def __init__(self):
        self.kongfu = '[传统方法]'

    # 1.2 摊煎饼方法 make_cake
    def make_cake(self):
        print(f'使用{self.kongfu}摊煎饼')


# 2 定义黑马学校类
class HeimaSchool(object):
    def __init__(self):
        self.kongfu = '[AI方法]'

    def make_cake(self):
        print(f'使用{self.kongfu}摊煎饼')

# 如果子类重写父类的属性和方法, 则优先使用子类的属性和方法 [mro资源优先顺序确定]

# 2 定义徒弟类 Prentice
class Prentice(Master, HeimaSchool):
    def __init__(self):
        self.kongfu = '[独创方法]'
        self.__money = 50000000   # 私有属性

    # 通过公共接口访问私有属性
    def get_money(self):
        return self.__money

    # 通过公共接口访问私有属性
    def set_money(self, money):
        self.__money = money

    def make_cake(self):
        print(f'使用{self.kongfu}摊煎饼')

    def __make_cake2(self):   # 私有方法
        print("独特的方法")

    def make(self):
        self.__make_cake2()


class TuSun(Prentice):
    pass


def dm01_测试私有属性():
    tusun = TuSun()
    # tusun.__money

    # 1 通过公共接口访问私有属性
    print(tusun.get_money())

    # 2 通过公共接口设置私有属性
    tusun.set_money(50000000*2)

    # 3 通过公共接口访问私有属性
    print(tusun.get_money())


def dm02_测试私有方法():
    tusun = TuSun()
    # tusun.__make_cake2()
    tusun.make()
    pass

if __name__ == '__main__':
    dm01_测试私有属性()
    dm02_测试私有方法()
    pass

